wow! Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
authorJonathan Blandford <jrb@redhat.com>
Tue, 8 Jan 2002 23:48:30 +0000 (23:48 +0000)
committerJonathan Blandford <jrb@src.gnome.org>
Tue, 8 Jan 2002 23:48:30 +0000 (23:48 +0000)
Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>

* gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreedatalist.c
gtk/gtktreestore.c

index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index f5ec51db7321560c2c0768e424c417549e5dacc2..04b74238388922ad5c20b3208ec964d95a4c4167 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan  8 18:39:23 2002  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtktreedatalist.c (gtk_tree_data_list_compare_func): wow!
+       Am I a moron or what 0 < 1 is not equivalent to strcmp ("a", "b")
+
 Tue Jan  8 18:04:01 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtktoolbar.c (gtk_toolbar_set_icon_size):
index ca11a4ecd0ce2ad83c3295835faafba4be8ba85e..403da218a640757149c1839395f72165b9535dc8 100644 (file)
@@ -280,32 +280,78 @@ gtk_tree_data_list_compare_func (GtkTreeModel *model,
   switch (G_TYPE_FUNDAMENTAL (type))
     {
     case G_TYPE_BOOLEAN:
-      retval = (g_value_get_int (&a_value) < g_value_get_int (&b_value));
+      if (g_value_get_int (&a_value) < g_value_get_int (&b_value))
+       retval = -1;
+      else if (g_value_get_int (&a_value) == g_value_get_int (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_CHAR:
-      retval = (g_value_get_char (&a_value) < g_value_get_char (&b_value));
+      if (g_value_get_char (&a_value) < g_value_get_char (&b_value))
+       retval = -1;
+      else if (g_value_get_char (&a_value) == g_value_get_char (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_UCHAR:
-      retval = (g_value_get_uchar (&a_value) < g_value_get_uchar (&b_value));
+      if (g_value_get_uchar (&a_value) < g_value_get_uchar (&b_value))
+       retval = -1;
+      else if (g_value_get_uchar (&a_value) == g_value_get_uchar (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_INT:
-      retval = (g_value_get_int (&a_value) < g_value_get_int (&b_value));
+      if (g_value_get_int (&a_value) < g_value_get_int (&b_value))
+       retval = -1;
+      else if (g_value_get_int (&a_value) == g_value_get_int (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_UINT:
-      retval = (g_value_get_uint (&a_value) < g_value_get_uint (&b_value));
+      if (g_value_get_uint (&a_value) < g_value_get_uint (&b_value))
+       retval = -1;
+      else if (g_value_get_uint (&a_value) == g_value_get_uint (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_ENUM:
       /* this is somewhat bogus. */
-      retval = (g_value_get_int (&a_value) < g_value_get_int (&b_value));
+      if (g_value_get_int (&a_value) < g_value_get_int (&b_value))
+       retval = -1;
+      else if (g_value_get_int (&a_value) == g_value_get_int (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_FLAGS:
-      retval = (g_value_get_uint (&a_value) < g_value_get_uint (&b_value));
+      /* this is even more bogus. */
+      if (g_value_get_uint (&a_value) < g_value_get_uint (&b_value))
+       retval = -1;
+      else if (g_value_get_uint (&a_value) == g_value_get_uint (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_FLOAT:
-      retval = (g_value_get_float (&a_value) < g_value_get_float (&b_value));
+      if (g_value_get_float (&a_value) < g_value_get_float (&b_value))
+       retval = -1;
+      else if (g_value_get_float (&a_value) == g_value_get_float (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_DOUBLE:
-      retval = (g_value_get_double (&a_value) < g_value_get_double (&b_value));
+      if (g_value_get_double (&a_value) < g_value_get_double (&b_value))
+       retval = -1;
+      else if (g_value_get_double (&a_value) == g_value_get_double (&b_value))
+       retval = 0;
+      else
+       retval = 1;
       break;
     case G_TYPE_STRING:
       stra = g_value_get_string (&a_value);
index d9e38832a23b55307d36fb4f1e93dd67cb6f8664..751850aab7e0630e1d3a3e6e03397b609968cb7c 100644 (file)
@@ -1794,6 +1794,7 @@ gtk_tree_store_sort_helper (GtkTreeStore *tree_store,
       i++;
     }
 
+  /* Sort the array */
   g_array_sort_with_data (sort_array, gtk_tree_store_compare_func, tree_store);
 
   for (i = 0; i < list_length - 1; i++)